SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porPublicacionDeTrabajosEspeciales] @idInscripcion integer, @pje float output, @resultado as integer output AS
SET NOCOUNT ON
declare  @idAgente as int,@CargoGenerico as int,@AsignaturaGenerica as int, @idTipoConvocatoria as int ,@fechaLimite as datetime
declare @topePublicacionTrabajosEspeciales as float,@sum as float
DECLARE @Error INT

BEGIN TRANSACTION
SET @ERROR=0

select @topePublicacionTrabajosEspeciales= (select valor1 from tb_parametros where idparametro=34) --idparametro=34 corresponde al tope por publicación de trabajos especiales

select  @idAgente=i.Agente,@cargoGenerico = i.CargoGenerico,@AsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion

if  @idTipoConvocatoria  in (1,2,3,4,5,9)  --    TipoConvocatoria = 1 ingreso,interinatos y suplencias
begin
	declare c cursor FORWARD_ONLY FOR
	select 
		  isnull (sum(PuntajeParaIncumbencias),0)  puntaje 
	from tb_antecedentes a 
		join tb_tiposAntecedentes t on a.tipo=t.idtipoantecedente 
		join tb_gruposDeIncumbencias G on G.idGrupoIncumbencia=a.GrupoIncumbencias
--		join tb_reluniongsgu R on r.idgrupounion = G.idGrupoIncumbencia
		join tb_incumbencias h on G.idGrupoincumbencia=h.grupoIncumbencia
    	         where a.rubro=19  and agente=@idagente and h.CargoGenerico=@Cargogenerico and h.AsignaturaGenerica=@AsignaturaGenerica and a.FechaPresentacion <= @FechaLimite--sumo todos los artículos que tiene el agente

		SET @Error = @@ERROR 
		IF @Error <> 0 GOTO Salir
		
		open c
		fetch next from c into @sum
		
		set @pje=0

		while @@FETCH_STATUS = 0
		begin
			set @pje=@pje+@sum
			fetch next from c into @sum
		end

		close c
		deallocate c

	if @pje > @topePublicacionTrabajosEspeciales  set @pje=@topePublicacionTrabajosEspeciales

	print @pje
end

Salir:
IF @Error <> 0 
	ROLLBACK TRANSACTION
ELSE 
	COMMIT TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[pje_porPublicacionDeTrabajosEspeciales] TO [Juntas]
GO
